# API- Android

Api名称与作用同七鱼官方开发文档 (opens new window)

  1. initSdk()
  • 初始化七鱼SDK,应尽早调用,不要在进入聊天界面前调用。
  1. 设置用户信息,有回调,该方法以及第一个入参的结构同七鱼官网开发文档- 上报用户信息 (opens new window)
setUserInfo({
    userId: "userId",
    data: "JSON.stringify([{JSON数据}])",
}, (ret) => {
    if (ret.code == 200) {
        //成功
    } else {
        //失败
    }
}) 
  1. 打开客服界面,若要上报用户信息,该方法可以在setUserInfo的成功回调中使用。

方法参数以及作用详见:功能配置 (opens new window) ,source的结构同ConsultSource

 openServiceActivity({
    title: 'uniapp测试界面',
    source: { 
        title: 'qiyu',
        //如果需要发送商品卡片,设置商品卡片信息
        productDetail: {
            title: "商品卡片",
			picture: "https://img",
			desc: "我是商品卡片的描述",
			url: "www.xxx.com",
        }
    },
})
  1. 退出登陆。

没有回调的退出登录:

logout()

有回调的退出登录:

logout((ret) => {
	if (ret.success == true) {
		modal.toast({
			message: '成功',
			duration: 1.5
		});
	} else {
		modal.toast({
			message: '失败' + JSON.stringify(ret.errMsg),
			duration: 1.5
		});
	}
})
  1. 更新聊天界面配置,和接收点击url的回调。
  • 注意:调用该方法后,若之前调用过setBotEventListener()setPermissionCallback()的设置事件将会被清空,请先调用updateOptions(),之后再调用setBotEventListener()setPermissionCallback()重新设置事件。

uiCustomization结构参考聊天窗口自定义 (opens new window)

updateOptions({
    isPullMessageFromServer: false, 
    uiCustomization: {
        hideLeftAvatar: false,
        isShowTitleAvatar: true,
        hideRightAvatar: false,
        inputTextColor: '#ff5500',
    },
}, (url) => {
    //点击url的回调
	plus.runtime.openWeb(url)
}) 
  1. 点击url和申请权限,聊天界面关闭。
setFinishPageSwitch(true)
  1. 获取消息未读数。
allUnreadCount((ret) => {
	modal.toast({
		message: "获取未读的客服消息数: " + ret,
		duration:1.5
	});
})
  1. 清空未读消息。
clearUnreadCount()
  1. 获取最后一条消息。
onReceiveMessageCallback((ret) => {
	modal.toast({
		    message: JSON.stringify(ret),
		    duration: 1.5
		});
	})
  1. 添加/注销未读消息数变化监听者。

register: true 为添加, false 为注销

addUnreadCountChangeListener({
	register: boolean
	}, (ret)=>{
			modal.toast({
				message:"未读数:" + ret,
				duration:1.5
			});
})
  1. 服务直达事件监听器。
setBotEventListener((url) => {
					modal.toast({
						message: JSON.stringify(url),
						duration: 1.5
					});
					plus.runtime.openWeb(url)
					console.log('setBotEventListener打印 ' + JSON.stringify(url))
				})
  1. 清空未读消息数。
clearUnreadCount();
  1. 获取最后一条消息。
onReceiveMessageCallback((ret) => {
					modal.toast({
						message: JSON.stringify(ret),
						duration: 1.5
					});
				})
  1. 权限的回调,以摄像头为例子,retCallback会返回权限名称。
setPermissionCallback((retCallback) => {
					uni.showModal({
						title: '提示',
						content: '权限: ' + retCallback,
						success: function(res) {
							if (res.confirm) {
								plus.android.requestPermissions(['android.permission.CAMERA'],
									function(e) {
										if (e.deniedAlways.length > 0) { //权限被永久拒绝  
											// 弹出提示框解释为何需要权限,引导用户打开设置页面开启  
											console.log('权限被永久拒绝' + e.deniedAlways.toString());
										}
										if (e.deniedPresent.length > 0) { //权限被临时拒绝  
											// 弹出提示框解释为何需要权限,可再次调用plus.android.requestPermissions申请权限  
											console.log('权限被临时拒绝' + e.deniedPresent.toString());
										}
										if (e.granted.length > 0) { //权限被允许  
											console.log('权限被允许' + e.granted.toString());
										}
									},
									function(e) {
										console.log('Request Permissions error:' + JSON.stringify(
											e));
									});
							} else {
								// 回调给七鱼弹出默认提示,也可以自己处理,因为七鱼界面已经关闭了
								qiyuModule.onInterceptEvent(); // qiyuModule为七鱼全局属性名字,根据自己的定义来写
							}
						}
					});
				})